using System;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("TurnTimer")]
	public class TurnTimer : MonoBehaviour
	{
		public float m_DebugTimeout => method_2<float>("m_DebugTimeout");

		public float m_DebugTimeoutStart => method_2<float>("m_DebugTimeoutStart");

		public GameObject m_SparksObject => method_3<GameObject>("m_SparksObject");

		public Transform m_SparksStartBone => method_3<Transform>("m_SparksStartBone");

		public Transform m_SparksFinishBone => method_3<Transform>("m_SparksFinishBone");

		public GameObject m_FuseWickObject => method_3<GameObject>("m_FuseWickObject");

		public GameObject m_FuseShadowObject => method_3<GameObject>("m_FuseShadowObject");

		public string m_FuseMatValName => method_4("m_FuseMatValName");

		public float m_FuseMatValStart => method_2<float>("m_FuseMatValStart");

		public float m_FuseMatValFinish => method_2<float>("m_FuseMatValFinish");

		public float m_FuseXamountAnimation => method_2<float>("m_FuseXamountAnimation");

		public static float BIRTH_ANIMATION_TIME => MonoClass.smethod_6<float>(TritonHs.MainAssemblyPath, "", "TurnTimer", "BIRTH_ANIMATION_TIME");

		public Spell m_spell => method_3<Spell>("m_spell");

		public TurnTimerState m_state => method_2<TurnTimerState>("m_state");

		public float m_countdownTimeoutSec => method_2<float>("m_countdownTimeoutSec");

		public float m_countdownEndTimestamp => method_2<float>("m_countdownEndTimestamp");

		public uint m_currentMoveAnimId => method_2<uint>("m_currentMoveAnimId");

		public uint m_currentMatValAnimId => method_2<uint>("m_currentMatValAnimId");

		public bool m_currentTimerBelongsToFriendlySidePlayer => method_2<bool>("m_currentTimerBelongsToFriendlySidePlayer");

		public bool m_waitingForTurnStartManagerFinish => method_2<bool>("m_waitingForTurnStartManagerFinish");

		public TurnTimer(IntPtr address, string className)
			: base(address, className)
		{
		}

		public TurnTimer(IntPtr address)
			: this(address, "TurnTimer")
		{
		}

		public static TurnTimer Get()
		{
			return MonoClass.smethod_15<TurnTimer>(TritonHs.MainAssemblyPath, "", "TurnTimer", "Get", Array.Empty<object>());
		}

		public void Awake()
		{
			method_8("Awake");
		}

		public void OnDestroy()
		{
			method_8("OnDestroy");
		}

		public bool HasCountdownTimeout()
		{
			return method_11<bool>("HasCountdownTimeout", Array.Empty<object>());
		}

		public void OnEndTurnRequested()
		{
			method_8("OnEndTurnRequested");
		}

		public void ChangeState(TurnTimerState state)
		{
			method_8("ChangeState", state);
		}

		public void ChangeStateImpl(TurnTimerState state)
		{
			method_8("ChangeStateImpl", state);
		}

		public void ChangeState_Start()
		{
			method_8("ChangeState_Start");
		}

		public void ChangeState_Countdown()
		{
			method_8("ChangeState_Countdown");
		}

		public void ChangeState_Timeout()
		{
			method_8("ChangeState_Timeout");
		}

		public void ChangeState_Kill()
		{
			method_8("ChangeState_Kill");
		}

		public void ChangeSpellState(TurnTimerState timerState)
		{
			method_8("ChangeSpellState", timerState);
		}

		public void OnSpellStateStarted(Spell spell, SpellStateType prevStateType, object userData)
		{
			method_8("OnSpellStateStarted", spell, prevStateType, userData);
		}

		public SpellStateType TranslateTimerStateToSpellState(TurnTimerState timerState)
		{
			return method_11<SpellStateType>("TranslateTimerStateToSpellState", new object[1] { timerState });
		}

		public TurnTimerState TranslateSpellStateToTimerState(SpellStateType spellState)
		{
			return method_11<TurnTimerState>("TranslateSpellStateToTimerState", new object[1] { spellState });
		}

		public bool ShouldUpdateCountdownRemaining()
		{
			return method_11<bool>("ShouldUpdateCountdownRemaining", Array.Empty<object>());
		}

		public void StopCountdownAnims()
		{
			method_8("StopCountdownAnims");
		}

		public float UpdateCountdownAnims(float countdownRemainingSec)
		{
			return method_11<float>("UpdateCountdownAnims", new object[1] { countdownRemainingSec });
		}

		public void StartCountdownAnims(float startingMatVal, float countdownRemainingSec)
		{
			method_8("StartCountdownAnims", startingMatVal, countdownRemainingSec);
		}

		public string GenerateMoveAnimName()
		{
			return method_13("GenerateMoveAnimName");
		}

		public string GenerateMatValAnimName()
		{
			return method_13("GenerateMatValAnimName");
		}

		public void OnUpdateFuseMatVal(float val)
		{
			method_8("OnUpdateFuseMatVal", val);
		}

		public void RestartCountdownAnims(float countdownRemainingSec)
		{
			method_8("RestartCountdownAnims", countdownRemainingSec);
		}

		public void UpdateCountdownTimeout()
		{
			method_8("UpdateCountdownTimeout");
		}

		public float ComputeCountdownRemainingSec()
		{
			return method_11<float>("ComputeCountdownRemainingSec", Array.Empty<object>());
		}

		public float ComputeCountdownProgress(float countdownRemainingSec)
		{
			return method_11<float>("ComputeCountdownProgress", new object[1] { countdownRemainingSec });
		}

		public void OnCurrentPlayerChanged(Player player, object userData)
		{
			method_8("OnCurrentPlayerChanged", player, userData);
		}

		public void OnFriendlyTurnStarted(object userData)
		{
			method_8("OnFriendlyTurnStarted", userData);
		}

		public void OnTurnTimerUpdate(TurnTimerUpdate update, object userData)
		{
			method_8("OnTurnTimerUpdate", update, userData);
		}

		public void OnTurnTimedOut()
		{
			method_8("OnTurnTimedOut");
		}

		public void OnGameOver(TAG_PLAYSTATE playState, object userData)
		{
			method_8("OnGameOver", playState, userData);
		}
	}
}
